package com.cucn.common.exception;

/**
 * 错误码和错误信息定义类
 * <p>
 * + 错误码定义规则5位数字
 * + 前两位表示业务场景，最后三位表示错误码。例如：10001。10：通用   001：参数校验异常
 * + 维护错误码后需要维护错误描述，将他们定义为枚举形式
 * + 错误码列表
 * + 10 通用
 * 001参数格式校验
 * 002短信验证码频率太高
 * + 11 商品
 * + 12 订单
 * + 13 购物车
 * + 14 物流
 * + 15 用户
 * + 21 库存
 *
 * @author KouChaoJie
 * @since: 2021/11/26 16:51
 */
public enum BizCodeEnume {
    /**
     * 系统未知异常状态码
     */
    UNKNOW_EXCEPTION(10000, "系统未知异常"),
    /**
     * 参数校验异常状态码
     */
    VAILD_EXCEPTION(10001, "参数格式校验失败"),
    /**
     * 商品上架异常
     */
    PRODUCT_UP_EXCEPTION(11000, "商品上架异常"),
    /**
     * 短信验证码问题
     */
    SMS_CODE_EXCEPTION(10001, "短信验证码发送频率异常"),
    /**
     * 用户已经存在
     */
    USER_EXIST_EXCEPTION(15001, "用户已经存在"),
    /**
     * 手机号已经存在
     */
    PHONE_EXIST_EXCEPTION(15002, "手机号已经存在"),
    /**
     * 帐号或密码错误
     */
    LOGINACCT_PASSWORD_INVAILD_EXCEPTION(15003, "帐号或密码错误"),
    /**
     * 库存锁定失败
     */
    NO_STOCK_EXCEPTION(21000, "商品库存不足"),
    /**
     * 流控错误
     */
    TO_MANY_REQUEST(10002, "请求流量过大"),
    ;

    private int code;
    private String msg;

    BizCodeEnume(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
